package models

import (
	"fmt"

	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
)

type Users struct {
	Id       int
	Username string `orm:"unique"`
	Password string
}

var db orm.Ormer

func init() {
	//开启调试模式
	orm.Debug = true
	//注册数据库驱动
	orm.RegisterDriver("mysql", orm.DRMySQL)

	// // 读取配置信息
	// dbhost := beego.AppConfig.String("dbhost")
	// dbport := beego.AppConfig.String("dbport")
	// dbuser := beego.AppConfig.String("dbuser")
	// dbpassword := beego.AppConfig.String("dbpassword")
	// db := beego.AppConfig.String("db")

	// //注册mysql Driver
	// orm.RegisterDriver("mysql", orm.DRMySQL)
	// //构造conn连接
	// //用户名:密码@tcp(url地址)/数据库
	// conn := dbuser + ":" + dbpassword + "@tcp(" + dbhost + ":" + dbport + ")/" + db + "?charset=utf8"
	// //注册数据库连接
	// orm.RegisterDataBase("default", "mysql", conn)
	// fmt.Printf("数据库连接成功！%s\n", conn)

	//获取数据库
	orm.RegisterDataBase("default", "mysql", "root:ws-123456@tcp(192.168.146.92:3308)/beego?charset=utf8", 30)
	orm.RegisterModel(new(Users))
	orm.RunSyncdb("default", false, true) //创建表
	db = orm.NewOrm()

	AddUsers(&Users{Username: "zhouhezhi", Password: "ws-123456"})
	// user:= Users{}
	// users:= make([]Users, 0)
	// //设置user的属性
	// user.Username = "zhouhezhi"
	// user.Password = "wondersoft"
	// //插入数据
	// users= append(users, user)
	// db.InsertMulti(1, users)
	//第一个字段表并行插入的行数，为1则顺序插入
	fmt.Println("init success")
}
func AddUsers(users *Users) (int64, error) {

	fmt.Println(users.Username, users.Password)
	//查询数据库中是否存在该用户
	var user Users
	err := db.QueryTable("users").Filter("username", users.Username).One(&user)
	if err == nil {
		fmt.Println("用户已存在")
		return 0, err
	}
	id, err := db.InsertOrUpdate(users)
	// id, err := db.Insert(users)	fmt.Println(id, err)
	if err != nil {
		db.Rollback()
	}
	return id, err
}
func ReadAllUser() []Users {
	var users []Users
	qb, _ := orm.NewQueryBuilder("mysql")
	qb.Select("*").From("users")
	sql := qb.String()
	db.Raw(sql).QueryRows(&users)
	fmt.Println("[INFO] sql", sql)
	return users
}
